1. Field of the Invention
This invention relates to a method and apparatus for testing new and revised computer programs by automatically generating, executing and documenting a customized test program using minimal user input.
2. Background Information
Many plant processes today are monitored, and to varying extents, controlled in the plant control room using signals sent from instrumentation located throughout the plant. One such process plant is a nuclear power plant. Although many operations in the control room are manual, the remaining majority are automatically performed through circuitry involving programmed microprocessors or programmable digital computers. Many of the programs used in these microprocessors and computers are critical to safe plant operation and consequently their accuracy and integrity is important.
In a typical power plant there can be about 1200 or more of these control and monitoring programs. Currently they are verified and validated through a visual examination of the code coupled with an independent physical testing of each program segment to insure proper operation of the program. Although the visual review has proved to be very effective in validating a program, Regulatory Guideline 1.97 issued by the Nuclear Regulatory Commission requires that equipment which provides data acquisitions and qualified display functions within the control room be tested in a more stringent manner. The physical tests have been performed to date using a demonstration unit of the actual hardware which permits access to the memory locations for the input parameters and output parameters. In order to isolate the piece of software to be tested, the desired test values of the input parameters are entered directly into the assigned memory locations in the demonstration unit, and the program is run. The outputs are extracted from the output memory locations for manual comparison with the expected values.
Such testing places the full burden on the verifier to devise a test program which executes all instructions and all possible branches in the program. This requires a great deal of skill on the part of the verifier and there is no direct record that all paths of the program have been exercised. Furthermore, since each program may require a multitude of tests to exercise all branches, the process becomes extremely time consuming and complete.
Accordingly, it is a primary object of the present invention to provide a method and apparatus for testing computer programs which automatically generates, executes and documents a customized test program using minimal user input.